home *** CD-ROM | disk | FTP | other *** search
- GEM++ - C++ LIBRARIES FOR GEM/AES/VDI
-
-
-
- NAME
- GEMslider - Conventional GEM slider objects, with extensions.
-
- DESCRIPTION
- A GEMslider may be horizontal or vertical, or both. A two-way
- slider is often called a "panner".
-
- A GEMslider proportionally represents some "window" into some
- larger object. There is no actual larger object - that is
- define by the class user.
-
- Normally, up to 50ms is spent waiting for the mouse to be released
- from arrows, and up to 250ms from page areas of the scrollbar.
- This allows the sliders to auto-repeat. Times are configurable.
-
- Note that the GEMobject which a GEMslider is is the RACK of
- the slider.
-
- CONSTRUCTORS
- GEMslider(GEMform& f, int RSCknob, int RSCrack)
- Create a GEMslider that allows the object with the RSC index
- "knob" to slide within the object with the RSC index "rack".
- Both objects are in the given GEMform. Currently, the knob
- must be a child of the rack.
-
- GEMslider(GEMform&, int RSCknob, int RSCrack, int RSCminus, int RSCplus)
- Create a slider as above, but also specifying two other objects
- that when clicked will advance the "window" by one "line" or
- "column" in either direction. The horizontal or vertical nature
- of the slider is calculated from the dimensions of the knob
- and rack.
-
- GEMslider(GEMform&, int RSCknob, int RSCrack,
- int RSChminus, int RSChplus,
- int RSCvminus, int RSCvplus)
- Create a slider as above, but with both horizontal AND vertical
- adjustors.
-
- METHODS
- virtual void Flush()
- Cause all modifications by the below functions to take visual
- effect.
-
- void SetVisibleLines(int noOfLines)
- void SetVisibleColumns(int noOfColumns)
- Set the size of the "window" in document units.
- Document units are arbitrarily defined by the class user.
-
- void SetTotalLines(int noOfLines)
- void SetTotalColumns(int noOfColumns)
- Set the size of the document in document units.
-
- void SetTopLine(int noOfLine)
- void SetLeftColumn(int noOfColumn)
- Set the position of the "window" in the document in document units.
-
- int VisibleLines()
- int VisibleColumns()
- Return size of "window" in document units.
-
- int TopLine()
- int LeftColumn()
- Return position of "window" in document units.
-
- void ColumnLeft()
- void ColumnRight()
- Move the "window" by HColumnAmount() document units in any direction.
- virtual int HColumnAmount()
- (normally 1)
-
- void LineUp()
- void LineDown()
- Move the "window" by VLineAmount() document units in any direction.
- virtual int VLineAmount()
- (normally 1)
-
- void PageLeft()
- void PageRight()
- Move the "window" by HPageAmount() document units in any direction
- virtual int HPageAmount()
- (normally equal to the current size of the "window")
-
- void PageUp()
- void PageDown()
- Move the "window" by VPageAmount() document units in any direction
- virtual int VPageAmount()
- (normally equal to the current size of the "window")
-
- int LineDelay(int ms)
- int PageDelay(int ms)
- Set the line or page auto-repeat rate in milliseconds. Unchanged
- if ms is negative. Returns value before change.
-
- void GEMtoDOC()
- void DOCtoGEM()
- Flush object changes or changes by above methods without redraw.
-
- GEMfeedback Touch(int x, int y, const GEMevent&)
- Overrides GEMobject::Touch() to implement the required action.
-
- EXTENSION
- By overriding the Flush() method, the class user may take
- the TopLine/LeftColumn values and adjust some other display
- accordingly.
-
- SEE ALSO
- GEMobject
-
- BUGS
- Bugs in GEM++ should be reported to warwick@cs.uq.oz.au
-
- AUTHOR
- Warwick Allison, 1993.
- warwick@cs.uq.oz.au
-
- COPYING
- This functionality is part of the GEM++ library,
- and is Copyright 1993 by Warwick W. Allison.
-
- GEM++ is free and protected under the GNU Library General Public
- License.
-
- You are free to copy and modify these sources, provided you
- acknowledge the origin by retaining this notice, and adhere to
- the conditions described in the GNU LGPL.
-